This invention relates to a system for controlling the use of software licensed to a user for use on a user""s system. In particular it relates to a system which permits the software publisher to control copying of the software it licenses to preclude users from giving away xe2x80x9cfreexe2x80x9d copies to others.
With advances in computing power and increasing research and development costs, sophisticated software is now widely available even for use on personal computers. Such software is highly portable, being easily disseminated over the Internet, or distributed by CD-ROM or other means. This, unfortunately has resulted in widespread unauthorized copying of licensed software. Because of the considerable costs of research, development, marketing, etc., the software publisher desires to prevent such unauthorized copying, and to control the use of the software in accordance with the terms of the license.
The publisher of software typically licenses a user to a use the software on a single system, and to make a back-up copy. The user, on the other hand, sometimes chooses to ignore the license terms and use the licensed software on many systems, or provide free copies to friends etc. This is a major problem with many game programs, and is a significant problem with many types of conventional business software. In view of the huge size of the software market, it is not surprising that many solutions have been proposed for controlling the use of such software to prevent unauthorized copying.
One approach, often used with expensive programs, is to provide a hardware device, commonly called a dongle, which the user attaches to the computer upon which the software is to operate. Each time the software runs on that computer, it checks to see if the hardware device is present. If the hardware device is not present, then the software does not operate. The hardware device typically includes something, for example, an integrated circuit, which is difficult or expensive for users to counterfeit. Unfortunately, an undesirable side-effect of this approach is that the cost of the dongle adds an additional $10 to $25 per license for use of the software. It also adds overhead to the management of the licenses, because user""s devices occasionally malfunction requiring replacement with a new appropriate code numbered dongle. Furthermore, many software companies do not have engineering capabilities for manufacturing such dongles in-house. Such solutions also cause fears of inconvenience in the consumer.
Other systems provide key numbers which may be unique to a user, but are not restricted to the user""s system. Before the software can operate the user must enter the appropriate key, for example, a number on a floppy disk or CD-ROM provided with the software. Such systems are easily circumvented by passing along the key number with the copy of the software.
Still other techniques employ encryption technology to make duplication of the software more difficult, and preclude copying with ordinary operating system copy techniques. Without the proper encryption software, the user is unable to make a functional copy of the software provided by the publisher.
Another approach used on some network software is to control the number of users on a system. In such systems, a business is licensed to have a previously agreed upon number of copies of a particular piece of software operating from a server at any given time. As each user logs in or out of using the program, their presence is counted, and appropriate controls are applied through the server to assure that the number of users at any given time does not exceed the license limit.
The end result of the approaches discussed above is that no low-cost system really provides satisfactory protection to the software publisher, or the needed flexibility to the user.
This invention provides a unique system and method for controlling the distribution of software under a license agreement. By identifying the computer utilized by the licensee and specifically aligning this computer with the software being licensed, the licensor is able to prevent unauthorized duplication of the licensed software. The licensor may allow the licensee to utilize the software on more than one computer, but in this case, the licensor is able to specifically determine the number of computers on which the software will be allowed to operate. For marketing purposes, the licensor may also allow the software to operate in a demonstration mode on computers other than the one(s) specifically identified and aligned with the licensed software.
In contrast to prior art, the approach of this invention results in a very low cost per licensee for controlling the distribution of licensed software. The license registration process is fully automated, eliminates the need for additional encryption software or telephone calls to and from the user to obtain validation numbers or the like. The registration process itself is almost completely transparent to the user, and the system provided is easy to integrate into existing applications. At the licensor""s option, the registration process can be completely anonymous, protecting the licensee""s right of privacy by not requiring personal data as a condition of being licensed to use the software.
In the preferred embodiment the use of the licensed software is restricted to one computer; however, the licensor may choose to provide the licensee with additional license(s) for back-up purposes, and/or to also utilize the software on a specific number of additional computersxe2x80x94such as a portable computer or on multiple computers in homes, offices and other settings. Once the software has been loaded on the maximum number of computers allowed by the licensor, and until the licensee obtains additional license(s), the software may be authorized to be utilized on additional computers in a demonstration mode. The demonstration mode generally will be a less than fully functional version of the original version, because it will contain only a subset of the features of the fully functional version, or will only work for a short period of time in a fully functional mode.
In a preferred embodiment a method of controlling reproduction of software by an end user of the software includes providing to an entity that licenses its software to users, license generation software which, when operated, generates validation numbers, there being a unique validation number for each copy of the software to be separately licensed. The validation number is included with the software when supplied from the licensor, and this number is incorporated with additional product information and provided to a license registration database.
When the user installs the software on the designated system(s), he registers the software by entering the validation number, plus a password that he creates. At this time the system registration software, for example, as provided by AnchorSoft, also obtains the system identification number. This information is sent to the online Anchorsoft registration database, and, after successful verification, a license key is stored on the user""s computer. This computer can now fully operate the licensed software.